An Introduction To Combinator Compilers And Graph Reduction Machines By David Graunke